# -*- coding:utf-8 -*-
import os

from common.import_pyside import *
from common.data import DB
from execute import Run


class RunLog(QWidget):
    def __init__(self, parent=None):
        super(RunLog, self).__init__(parent=parent)

        mainlayout = QVBoxLayout()

        # ########## 执行记录
        main_splitter = QSplitter(Qt.Orientation.Vertical)
        self.case_step_list_widget = QListWidget()
        # 设置为可多选模式
        self.case_step_list_widget.setSelectionMode(QAbstractItemView.ExtendedSelection)

        # 允许点击发送信号
        self.case_step_list_widget.setContextMenuPolicy(Qt.CustomContextMenu)
        # 设置上下文菜单请求事件
        self.case_step_list_widget.customContextMenuRequested.connect(self.logGenerateMenu)

        self.case_step_list_widget.addItem("执行时间         2023年10月25日21:35:16            成功")
        self.case_step_list_widget.addItem("执行时间         2023年10月25日21:35:16            成功")
        self.case_step_list_widget.addItem("执行时间         2023年10月25日21:35:16            失败")
        self.case_step_list_widget.addItem("执行时间         2023年10月25日21:35:16            成功")
        self.case_step_list_widget.addItem("执行时间         2023年10月25日21:35:16            成功")
        self.case_step_list_widget.addItem("执行时间         2023年10月25日21:35:16            失败")
        self.case_step_list_widget.addItem("执行时间         2023年10月25日21:35:16            成功")
        self.case_step_list_widget.addItem("执行时间         2023年10月25日21:35:16            成功")
        listItem = QListWidgetItem("执行时间         2023年10月25日21:35:45            失败")
        listItem.setForeground(QBrush(QColor(255, 0, 0)))
        self.case_step_list_widget.addItem(listItem)

        for item in range(100):
            listItem1 = QListWidgetItem("执行时间         2023年10月25日21:35:45            成功")
            listItem1.setForeground(QBrush(QColor(0, 100, 50)))
            self.case_step_list_widget.addItem(listItem1)

        # 显示步骤
        self.step_layout = QHBoxLayout()
        self.LogtableWidget = QTableWidget()
        # 设置表格不可编辑
        self.LogtableWidget.setEditTriggers(QAbstractItemView.NoEditTriggers)

        self.LogtableWidget.setColumnCount(4)
        # # 设置表头
        self.LogtableWidget.setHorizontalHeaderLabels(['类型', '动作', '是否执行成功', '错误截图'])
        # 参考地址：http://phpzyw.com/bc5a5B2wHB1VXBAM.html
        self.LogtableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

        self.LogtableWidget.setRowCount(400)
        for row in range(400):
            itemWidget = QTableWidgetItem(str(row))
            itemWidget.setToolTip("16239781923012391-23012-=30=123-12=3-82318203923812312")
            self.LogtableWidget.setItem(row, 0, itemWidget)

        self.step_layout.addWidget(self.LogtableWidget)

        main_splitter.addWidget(self.case_step_list_widget)
        main_splitter.setLayout(self.step_layout)

        mainlayout.addWidget(main_splitter)
        self.setLayout(mainlayout)

    def logGenerateMenu(self, pos):
        menu = QMenu(self)
        inset_before = QAction("在该步骤前插入", self)
        inset_before.setIcon(QIcon('./icon/stop_record.ico'))

        inset_after = QAction("在该步骤后插入", self)
        inset_after.setIcon(QIcon('./icon/stop_record.ico'))

        item3 = QAction("在该步骤前插入", self)
        item3.setIcon(QIcon('./icon/stop_record.ico'))

        menu.addAction(inset_before)
        menu.addAction(inset_after)
        menu.addSeparator()
        menu.addAction(item3)
        screenPos = self.case_step_list_widget.mapToGlobal(pos)
        # 在当前步骤阻塞
        action = menu.exec_(screenPos)
        if action == item3:
            print("3")
            # list数据，当前已选择的itemModel,列表
            self.case_step_list_widget.selectedIndexes()


if __name__ == '__main__':
    app = QApplication()
    win = RunLog()
    win.show()
    app.exec()
